﻿using System;
using System.Collections.Generic;
using System.IO;
using Sonic.Framework.Enums;

namespace Sonic.Framework.Interfaces
{
    public interface ISiteDirectory
    {
        List<IExclusion> Exclusions { get; set; }
        DirectoryInfo DirectoryInfo { get; set; }
        List<ProcessorToolDirectiveCall> PreProcessorDirectives { get; set; }
        List<ProcessorToolDirectiveCall> PostProcessorDirectives { get; set; }
        string[] FileExtensions { get; set; }
        string RelativePath { get; set; }
        IProcessorTool Tool { get; set; }

        List<System.IO.FileInfo> GetMatchingFiles(ExclusionType exclusionType);
        void Exclude(FileInfo file, ExclusionType exclusionType);
        void Exclude(FileInfo file, ExclusionType exclusionType, string processorToolDirectiveName);
        void Exclude(List<FileInfo> files, ExclusionType exclusionType, string processorToolDirectiveName);
        void Exclude(DirectoryInfo dir, ExclusionType exclusionType);
        void Exclude(DirectoryInfo dir, ExclusionType exclusionType, string processorToolDirectiveName);
    }
}
